Fix issues when building more Quiche tests for iOS and Windows

Addresses additional build and test failures for tests run as part of net_unittests in Chromium for iOS and Windows.

Calling WSAStartup in the connect tests avoids the following error in multiple tests on the win-rel bot:
```
ERROR:quic_name_lookup.cc(36)] Failed to look up localhost: Either the application has not called WSAStartup, or WSAStartup failed.
```

Using QUICHE_NO_EXPORT avoids errors like the following on win_chromium_compile_dbg_ng:
```
lld-link: error: undefined symbol: __declspec(dllimport) public: class absl::Status __thiscall quiche::BTreeScheduler<int, int>::Register(int, int const &)
```

The CustomStructWritesTooLittle test changes avoids an unused variable error on ios-simulator.

PiperOrigin-RevId: 607146214
diff --git a/quiche/common/btree_scheduler.h b/quiche/common/btree_scheduler.h
index d2bb765..75312a3 100644
--- a/quiche/common/btree_scheduler.h
+++ b/quiche/common/btree_scheduler.h
@@ -41,7 +41,7 @@
 // The Id type has to define operator==, be hashable via absl::Hash, and
 // printable via operator<<; the Priority type has to define operator<.
 template <typename Id, typename Priority>
-class QUICHE_EXPORT BTreeScheduler {
+class QUICHE_NO_EXPORT BTreeScheduler {
  public:
   // Returns true if there are any streams registered.
   bool HasRegistered() const { return !streams_.empty(); }
diff --git a/quiche/common/print_elements.h b/quiche/common/print_elements.h
index ae69c40..3c39cd4 100644
--- a/quiche/common/print_elements.h
+++ b/quiche/common/print_elements.h
@@ -16,7 +16,7 @@
 // Print elements of any iterable container that has cbegin() and cend() methods
 // and the elements have operator<<(ostream) override.
 template <typename T>
-QUICHE_EXPORT inline std::string PrintElements(const T& container) {
+QUICHE_NO_EXPORT inline std::string PrintElements(const T& container) {
   std::stringstream debug_string;
   debug_string << "{";
   auto it = container.cbegin();
diff --git a/quiche/common/wire_serialization_test.cc b/quiche/common/wire_serialization_test.cc
index 37216ca..f35c13d 100644
--- a/quiche/common/wire_serialization_test.cc
+++ b/quiche/common/wire_serialization_test.cc
@@ -237,14 +237,15 @@
 };
 
 TEST(SerializationTest, CustomStructWritesTooLittle) {
-  constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
   absl::Status status;
 #if defined(NDEBUG)
+  constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
   status = SerializeIntoSimpleBuffer(WireFormatterThatWritesTooLittle(kStr))
                .status();
   EXPECT_THAT(status, StatusIs(absl::StatusCode::kInternal,
                                ::testing::HasSubstr("Excess 1 bytes")));
-#else
+#elif GTEST_HAS_DEATH_TEST
+  constexpr absl::string_view kStr = "\xaa\xbb\xcc\xdd";
   EXPECT_QUICHE_DEBUG_DEATH(
       status = SerializeIntoSimpleBuffer(WireFormatterThatWritesTooLittle(kStr))
                    .status(),
diff --git a/quiche/http2/test_tools/hpack_example_test.cc b/quiche/http2/test_tools/hpack_example_test.cc
index 4dd24bd..abc7395 100644
--- a/quiche/http2/test_tools/hpack_example_test.cc
+++ b/quiche/http2/test_tools/hpack_example_test.cc
@@ -34,11 +34,13 @@
   EXPECT_EQ(absl::string_view(kExpected, sizeof kExpected), bytes);
 }
 
+#ifdef GTEST_HAS_DEATH_TEST
 TEST(HpackExampleToStringOrDie, InvalidInput) {
   EXPECT_DEATH(HpackExampleToStringOrDie("4"), "Truncated");
   EXPECT_DEATH(HpackExampleToStringOrDie("4x"), "half");
   EXPECT_DEATH(HpackExampleToStringOrDie(""), "empty");
 }
+#endif
 
 }  // namespace
 }  // namespace test
diff --git a/quiche/quic/tools/connect_tunnel_test.cc b/quiche/quic/tools/connect_tunnel_test.cc
index 379da7c..f52afce 100644
--- a/quiche/quic/tools/connect_tunnel_test.cc
+++ b/quiche/quic/tools/connect_tunnel_test.cc
@@ -99,6 +99,11 @@
 class ConnectTunnelTest : public quiche::test::QuicheTest {
  public:
   void SetUp() override {
+#if defined(_WIN32)
+    WSADATA wsa_data;
+    const WORD version_required = MAKEWORD(2, 2);
+    ASSERT_EQ(WSAStartup(version_required, &wsa_data), 0);
+#endif
     auto socket = std::make_unique<StrictMock<MockSocket>>();
     socket_ = socket.get();
     ON_CALL(socket_factory_,
diff --git a/quiche/quic/tools/connect_udp_tunnel_test.cc b/quiche/quic/tools/connect_udp_tunnel_test.cc
index d86ff0c..73b06c2 100644
--- a/quiche/quic/tools/connect_udp_tunnel_test.cc
+++ b/quiche/quic/tools/connect_udp_tunnel_test.cc
@@ -113,6 +113,11 @@
 class ConnectUdpTunnelTest : public quiche::test::QuicheTest {
  public:
   void SetUp() override {
+#if defined(_WIN32)
+    WSADATA wsa_data;
+    const WORD version_required = MAKEWORD(2, 2);
+    ASSERT_EQ(WSAStartup(version_required, &wsa_data), 0);
+#endif
     auto socket = std::make_unique<StrictMock<MockSocket>>();
     socket_ = socket.get();
     ON_CALL(socket_factory_,